ホームに戻る
出典 :
目次 :
VBAからワークシート関数を呼び出す
VBAからは、ほぼすべてのワークシート関数を呼び出すことができる。
ワークシート関数を用いる利点としては、VBAのみで処理を行う場合と比較して、
- 記述が簡潔となる
- 処理が(多くの場合非常に)高速となる
が挙げられる。
基本の書式
WorksheetFunction オブジェクトを用いる。
WorksheetFunction.関数名(引数)
ワークシート関数を用いる場合と用いない場合の処理時間の比較
セル範囲 A1 : A100000 に入力された数値の総和を求める場合の例
VBAに直接記述 ⇒ 0.395秒
Sub Test1()
Dim i As Long, A As Long
' A に A1 : A100000 の総和を格納
For i = 1 To 100000
A = A + Cells(i, 1)
Next i
End Sub
ワークシート関数( Sum() )を使用 ⇒ 0.002 秒
Sub Test2()
' ループ制御変数 i は不要
Dim A As Long
' A に A1 : A100000 の総和を格納
A = WorksheetFunction.Sum(Range("A1:A100000"))
End Sub